#ifndef MU_PARSER_H
#define MU_PARSER_H

#include <string>
#include <vector>

#include "lexer.h"

class Parser {
public:
  void process(const std::wstring &code);

private:
  void file();

  void stmt();

  void expr();

  void call_expr();

  void dot_expr();

  void primary_expr();

private:
  Lexer lexer;
  std::vector<Token> tokens;
  std::size_t pos;
};

#endif //MU_PARSER_H
